#							-*- Autoconf -*-

AT_BANNER([M4sh.])


## ----------------------------- ##
## AS_DIRNAME & AS_DIRNAME_SED.  ##
## ----------------------------- ##

# Build nested dirs.

AT_SETUP([[AS_DIRNAME & AS_DIRNAME_SED]])

AT_DATA(configure.ac,
[[AC_PLAIN_SCRIPT()dnl
#! /bin/sh

_AS_EXPR_PREPARE

define([AS_DIRNAME_TEST],
[dir=`AS_DIRNAME([$1])`
test "$dir" = "$2" ||
  echo "dirname($1) = $dir instead of $2" >&2

dir=`AS_DIRNAME_SED([$1])`
test "$dir" = "$2" ||
  echo "dirname_sed($1) = $dir instead of $2" >&2])

AS_DIRNAME_TEST([//1],		[//])
AS_DIRNAME_TEST([/1],		[/])
AS_DIRNAME_TEST([./1],		[.])
AS_DIRNAME_TEST([../../2],	[../..])
AS_DIRNAME_TEST([//1/],		[//])
AS_DIRNAME_TEST([/1/],		[/])
AS_DIRNAME_TEST([./1/],		[.])
AS_DIRNAME_TEST([../../2],	[../..])
AS_DIRNAME_TEST([//1/3],	[//1])
AS_DIRNAME_TEST([/1/3],		[/1])
AS_DIRNAME_TEST([./1/3],	[./1])
AS_DIRNAME_TEST([../../2/3],	[../../2])
AS_DIRNAME_TEST([//1/3///],	[//1])
AS_DIRNAME_TEST([/1/3///],	[/1])
AS_DIRNAME_TEST([./1/3///],	[./1])
AS_DIRNAME_TEST([../../2/3///],	[../../2])
AS_DIRNAME_TEST([//1//3/],	[//1])
AS_DIRNAME_TEST([/1//3/],	[/1])
AS_DIRNAME_TEST([./1//3/],	[./1])
AS_DIRNAME_TEST([../../2//3/],	[../../2])
AS_EXIT(0)
]])

AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE

AT_CLEANUP(configure)



## ------------ ##
## AS_MKDIR_P.  ##
## ------------ ##

# Build nested dirs.

AT_SETUP([[AS_MKDIR_P]])

AT_DATA([configure.ac],
[[AC_PLAIN_SCRIPT()dnl
#! /bin/sh

pwd=`pwd`
set -e
# Absolute
AS_MKDIR_P(["$pwd/1/2/3/4/5/6"])
test -d "$pwd/1/2/3/4/5/6" ||
  AC_MSG_ERROR([$pwd/1/2/3/4/5/6 has not been properly created])
# Relative
AS_MKDIR_P(["a/b/c/d/e/f"])
test -d a/b/c/d/e/f ||
  AC_MSG_ERROR([a/b/c/d/e/f has not been properly created])
AS_EXIT(0)
]])

AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE

AT_CLEANUP(configure 1 a)




## ----------------------------- ##
## Negated classes in globbing.  ##
## ----------------------------- ##

# It is known that `[^...]' is not universally supported, but it is
# unknown for `[!...]'.

AT_SETUP([Negated classes in globbing])

AT_DATA([configure.ac],
[[AC_PLAIN_SCRIPT()dnl
#! /bin/sh

case 'with!two!bangs' in
  *[[!a-z]]*) ;;
           *) AC_MSG_ERROR([[`*[!a-z]*' didn't match `with!two!bangs']]);;
esac

case without in
  *[[!a-z]]*) AC_MSG_ERROR([[`*[!a-z]*' matched `without']]);;
esac
]])

AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE

AT_CLEANUP(configure)
